1. Field of the Invention
This invention relates to a communication system (xe2x80x9cnetworkxe2x80x9d) that transparently maps and operates in one domain of addressing that may be different from the addressing domain interfacing with the network. More specifically, the invention provides mapping between an addressing domain outside the network with an addressing domain inside the network at end nodes of the network, the latter addressing domain not being constrained to a particular bit size and being used to supplant addresses outside the network that, but for this invention, would be used inside the network as well.
2. Description of the Related Art
A communication network is generally regarded as an interconnected set of subnetworks or subnets. The network can extend over localized subnets as an intranet, or can extend globally as an internet between one or more intranets. A communication network can therefore forward data within a localized network between termination devices extending to almost anywhere around the world. The termination devices include any data entry/retrieval system (e.g., telephone or computer), and a network includes a local and/or global interconnection of termination devices configured on one or more subnets.
The basic underpinnings of network operation is the various protocols used to communicate across the network. A popular foundation for those protocols is the Open System Interconnect (xe2x80x9cOSIxe2x80x9d) model of the International Standards Organization. Using that model or a derivative thereof, protocols can be developed which work in concert with each other. A popular communication protocol includes the Transmission Control Protocol (xe2x80x9cTCPxe2x80x9d) and the Internet Protocol (xe2x80x9cIPxe2x80x9d). TCP/IP are used in networks that are known as packet-switched networks. The advent of asynchronous transfer mode (xe2x80x9cATMxe2x80x9d) has brought about a divergence from packet-based standards to one using a cell-switched network. Packet-switched and cell-switched networks are in contrast with circuit-switched networks, such as the telephone system. As opposed to maintaining a fixed routing connection for the transmitted message, packet or cell switching evenly allocates or xe2x80x9cswitchesxe2x80x9d packet or cell portions of the message across dissimilar routes of the network. The term packet switching henceforth refers generically to switching message portions, regardless of whether that portion is a cell or packet.
In a packet-switched network, each packet of a particular message may be sent across different routes of the network at the same time and then reassembled at the proper termination device. In order to ensure the packets are properly received, certain layers of the OSI protocol stack will wrap the data before the data is sent across the network. For example, TCP can divide data into segments which are then placed into, for example, IP datagrams having a header which includes the IP address of the originating and receiving termination devices. It is not until the IP has been wrapped possibly several times will the TCP be forwarded across the network.
The IP datagram can be further wrapped using a Point-to-Point Protocol (xe2x80x9cPPPxe2x80x9d), a popular such protocol being that which follows the Ethernet specification at the physical or data transport layer of the OSI model. As the datagram is transferred across the network, the addressing header contains both the source and destination address. The source address and destination address can be represented in different domains. For example, the termination device which transmits the datagram can be considered the source, whereby the source can be represented with possibly numerous source addresses. At the network or internet layer, the source address can be represented as an IP address, whereas at the physical or data transport layer, the source address can also be represented as an Ethernet or Token Ring address. The same applies for the destination address. Depending on whether the source and destination are in an Ethernet network or a Token Ring network, their addresses follow the protocol used by those networks.
The various networks of an internet can be connected in different ways. For example, dedicated telephone lines can transmit data between networks, or a satellite link can be employed. In addition, routers, satellites, fiber-optic cables, and special ISDN telephone lines, or high-speed DSL connections are used to pass information between networks. Regional networks are connected to one another via high-speed backbones, i.e., connections that can send data from one regional network to another. The regional networks can be configured either as Token Ring networks or as an Ethernet server/host (with clients coupled thereto).
Routers are used to direct traffic across the internet and between regional networks. Routers function to open the IP addressed packet and read the IP destination address. Routers can then calculate the best route, and send the packet toward that final destination. The mechanism for determining the best route involves comparing the destination addresses against an internal database called the routing table. Routing tables are generally dynamic in nature and can accommodate multiplicity of nodes and/or forwarding modules of a rather large internet or intranet having IP identification numbers and Ethernet identification numbers (addresses) that can change as the modules are reconfigured with new routers, bridges, switches, and/or gateways. In this manner, conventional networks purposely rely upon the internal modules or nodes having a non-structured identification numbers or addresses. In this manner, the multiple subnetworks which form the internet can be updated and varied with new modules and corresponding addresses not knowing necessarily the addresses of the other modules or nodes. All that is required is that the routing tables within the routers be updated or periodically programmed. However, one router on the network will not necessarily know the location of the physically closest router or its placement within the network. The router will simply route based on its existing routing table and the resulting look-up outcome. Such a system can be considered a non-relative or non-deterministic router topography. Non deterministic routers tend to rely on the number of hops (i.e., the number of routers or gateways) when determining the optimal routing path. Thus, while a router may know the number of additional routers on a given path, it does not necessarily know or have a link to the identity and relative placement of those routers.
As a precept to the routing function of a router, each node of a regional network and the multiplicity of nodes across numerous regional networks, have a common identifier. That is, each node across an intranet or internet between a source termination device and a destination termination device has an identification number to allow a router to route data across a plurality of nodes and eventually to a destination node, or termination device. While the identifier can dynamically change, it is important that the identifiers be unique to their corresponding nodes so that addressing can be specific from one node to another throughout the routing process. Regardless of whether the nodes and termination devices use high speed Ethernet, or even higher speed, for example, Synchronous Optical Networks (xe2x80x9cSONETsxe2x80x9d), a singular (or common) addressing domain is needed across all nodes of an interlinked set of regional networks which form an intranet or internet.
Using a common addressing domain for each and every node of an internet or intranet having possibly numerous subnets, poses several problems. For instance, a 32-bit address domain is well-known and typically used in IP networking. To access the Internet spread across the global environment of termination devices, every access point (or interface) needs to have a unique IP address in the same 32-bit domain. 32-bit addressing provides for four gigabit IP addresses. However, four-gigabit addressing may soon be insufficient in the ever growing world of internet use. Since this is becoming a limiting factor, a 128-bit addressing domain with IPv6 is being introduced. However, this is again another domain and all addresses within the overall network need to reside in this domain for connectivity. In addition to the addressing limits for IP networking, there are also addressing limits at lower model layers.
IP is a network layer addressing mechanism. Underneath this is the data link layer (or transport layer or MAC layer) addressing domain, most popular of which is the Ethernet. Ethernet is a 48-bit addressing domain, and each Ethernet device needs to have a unique address within this domain. Since Ethernet is a data link layer addressing mechanism, today""s routing techniques update this address at every hop requiring all devices within the network to have unique addresses in the same or xe2x80x9ccommonxe2x80x9d data link addressing domain.
As the network increases in size, it would be desirable not to merely increase the size of the addressing domain. In other words, simply adding bits to the addressing domain of an Ethernet data link layer can increase the decoding and, therefore, the routing operation across the network. Additionally, while each termination device may have one or more IP addresses which can forward data into that device or receive data from the device, each device regardless of its location in the overall network must have its own unique Ethernet address if the data link layer uses Ethernet technology. While 48-bit addressing in the Ethernet addressing field is quite large, the advent of high speed Ethernet makes it likely that more that 48-bit addressing may be needed. In other words, the number of users that use an Ethernet card on their computer, router, gateway, etc. may quickly extend beyond 248. In addition, each time a network administrator wishes to use Ethernet in his or her operation, that administrator must purchase a portion of the 248 Ethernet addresses. Acquiring Ethernet bandwidth can be quite expensive, especially in large organizations that use Ethernet.
It would be beneficial to enable transmission across multiple address domains that are transparent to higher layers, such as the IP network layer. This will overcome the problem of running out of address space or having to introduce even larger addressing bus size. It is critical, however, that any such mechanism be transparent to the higher levels or the user software levels.
The mapping of a domain of addresses should ideally be transparent to the division of a global network into possibly numerous local networks. An improvement would exist if somehow the local networks (or xe2x80x9cnetworksxe2x80x9d) could have different addressing domains. A network being serviced could beneficially have an addressing domain and/or protocol that is separate and independent from an addressing domain of a network providing the service. This would enable efficient organization and management of data transmission within the domain providing the service without impacting the address domain that is being serviced. Any modifications and scaling within the network providing services will then be ideally isolated from the network being serviced. Similarly, any changes or scaling to the network being serviced will be transparent to the servicing network. The aforementioned concepts, albeit not available in conventional addressing or address mapping would, if employed, significantly enhance such conventional systems.
It would be of further benefit to introduce within nodes of the servicing network that are not accessible outside that network, an addressing domain that is separate and distinct from the addressing domains of nodes that connect to nodes external to the network, and separate and distinct from nodes fully external to the network. In other words, a distinction is made between intermediate nodes and end nodes internal to the network. The end nodes communicate with termination devices external to the network, whereas the intermediate nodes communicate solely between end nodes or between one another. It would be a beneficial improvement over conventional node architecture for the intermediate nodes to have an addressing domain that would not consume any addressing of the end nodes or termination devices external to the network. In this fashion, identification numbers of the intermediate nodes would not consume addressing bandwidth of the data/physical layer, or higher layers, of the OSI model. Importantly, the improvement would eliminate the need to expand IP and/or Ethernet addressing domains, and therefore eliminate the relative cost involved in such.
The addressing domain or identification numbers of addresses assigned to nodes within the improved network architecture should advantageously be quite large, possibly extending beyond 48-bits or 64-bits. Alternatively, the addresses assigned to such nodes can be quite small. Thus, the addressing of the nodes within the improved network can be scaled either large or small according to advantages beyond that of conventional addressing. These benefits as well as others are further described herein below.
The problems outlined above are in large part solved by an addressing mechanism that allows transparent communication between multiple addressing domains. For example, a servicing network may have an addressing domain separate from a network being serviced. The servicing network can hereinafter be regarded as the xe2x80x9cnetworkxe2x80x9d or xe2x80x9cnetworksxe2x80x9d while the serviced network is external to the servicing network. Contained within the servicing network are intermediate nodes placed between end nodes. The nodes are hereinafter referred to as xe2x80x9cmodules.xe2x80x9d The modules perform routing functions based on source and destination addresses of the packet being forwarded. It is, therefore, contemplated that the communication system hereof includes one or more networks interconnected with one another between termination devices. A termination device may be the source of data, and another termination device may be the destination for that data. The termination devices can be computers, routers, gateways, switches, bridges, or any hardware of software module which can transfer, map, read data into the network, or write data from the network. Reading and writing functions can be those normally associated with any media usable by a hardware or software element, and the media can be either permanent or temporary.
Within the network is at least one module, and preferably numerous modules interconnected to each other. The modules can be classified as end modules (exit and entry end modules) or as intermediate modules. The end modules are those that are coupled to other networks, addressing domains, or termination devices outside of the network. The entry end module performs protocol wrapping functions as packets of data enter the network, whereas exit end modules strip protocol used by the network as the packets exit the network. The end modules can, if called upon, also perform a routing function similar to intermediate modules. Each module can be configured in hardware to be substantially the same, with only the programmed functions being different based on where, within the network, the modules are placed.
Each module may include a minimum of one bi-directional port and a traffic manager which controls the port or ports. The number of ports is scalable in that there may be one or more input ports and one or more output ports arranged in various configurations, with the traffic manager deciding which packet received on an input port will be forwarded to which of the various output ports. The traffic manager includes a decoder and various buffers. The decoder performs a comparison between a destination address wrapped on datagrams by the entry end module and the identification number of that module based on the position of that module within the overall network.
Advantageously, identification addresses for each of the intermediate modules and end modules of a given network can utilize its own unique and independent identification layer. The identification layer of a particular network is unique in that it can be different from addresses within another network. While the networks can be connected to one another by end modules, addressing within one network is totally separate from addressing in another. For example, addressing in a first network using its own identification layer can have addresses 1, 2, 3, 4, 5 . . . N, representing each of N modules within that network. However, a second network can have the same addressing identifiers 1, 2, 3, 4, 5 . . . N as well as other addressing identifiers such as N+1, N+2, N+3 . . . M. However, since addressing in one network is separate from addressing in another, the first and second networks need not have a common addressing mechanism, where each module of both the first and second networks require a unique identification number. Instead, a module of the first network can have an identifier of 1, and a module in the second network can also have an identifier of 1. In this fashion, addressing can be reused among networks. Importantly, the numerous intermediate modules of one network may be duplicative as to addressing numbers within another network. This substantially reduces the constraints on common addressing numbers which are relegated only at the periphery or interconnection end modules and termination devices.
The end modules and termination devices must have a common addressing scheme, where each end module and termination device has its own unique identifier at the data link/physical layer. Thus, while the end modules and termination devices connected to the end modules have unique and corresponding lower layer addresses such as Ethernet addresses, the intermediate modules within one or more networks can have an independent set of identifiers separate from those of the end modules and termination devices. By assigning unique identifiers only at the periphery of networks and not internal to each network, the Ethernet addresses at the peripheries and termination devices can be minimized so that Ethernet addresses are not needlessly consumed.
In order to transfer a packet of data from a termination device to another termination device, separated by a network with an addressing domain internal to the network different from addressing domains external to the network, a simple mapping function is all that is required. In other words, the termination device which sources the data may have a unique Ethernet address domain noted on the packet being sent. Moreover, the destination termination device has its own unique addressing domain shared with that of the source termination device. As such, the source and destination devices are said to have a common addressing domain, where each device has its own unique identifying number. In addition to the termination devices having a unique identifying number of a first addressing domain, the entry and exit end modules also have a unique identifying number within the first addressing domain. In this fashion, the source termination device will have an identifying number separate and distinct from the identifying number of the entry end module. In addition, the exit end module will have an identifying number unique to the exit end module within the same addressing domain as the entry end module, the source termination device and the destination termination device. In this fashion, a single addressing domain can be used to forward data from the source termination device to a unique entry end module and eventually to an exit end module coupled to the destination termination device. What happens within the network, and among intermediate modules, is entirely separate and independent of addressing between termination devices and end modules. In other words, the intermediate modules can have an addressing scheme altogether different from the addressing scheme used to send data into an entry end module and receive data from an exit end module. The routing between termination devices and end modules is, therefore, said to be independent of the routing between intermediate modules. Independent routing is often referred to interchangeably as independent addressing. By freeing addresses used in Ethernet from the intermediate modules, it will require considerably less number of Ethernet addresses only on the periphery (end module) and termination device connected thereto. Therefore, an extremely large network can be easily accommodated within the existing 48-bit Ethernet address range or the 32/64-bit IP address range.
Assigning identification numbers to intermediate modules and addressing those intermediate modules within an addressing domain separate and distinct from modules used outside the network, e.g., IP addressing, Token Ring addressing, or Ethernet addressing domains, represents a substantial advantage in addressing bandwidth. Lessening the number of Ethernet addresses or other public domain address usage within the network is a primary importance. This allows communication between independent address domains thus removing their restrictions of a domain address range limit.
The present network with internal addressing separate and distinct from addressing and/or protocols at the end nodes and external to the network is compatible with the OSI model. For example, the entry end module can wrap the datagram with IP source and destination addresses, and Ethernet source and destination addresses unique to the network. The separate addressing protocols unique to the internal modules are also added at the entry end module, such that the wrap includes wrapping not only the IP source and destination address, the Ethernet source and destination address, but also the internal source and destination addresses of the network. The internal addresses through the network are added when the data packet enters the network and are stripped or removed when the data packet leaves the network. The IP addresses as well as the Ethernet addresses, however, remain. As such, the internal addressing domain denotes the source and destinations of the entry end module and the exit end module, respectively, of the network, while the IP and Ethernet addresses denote the source and destinations outside of the network. In this manner, the datagram can be forwarded through the network in a seamless fashion without involving any changes to the protocols used by the conventional OSI model.
Conventional Address Resolution Protocols (xe2x80x9cARPxe2x80x9d) can be used to determine the location and, therefore, address of an external module relative to an exit end module. ARP can be broadcast over the network to identify, for example, the destination Ethernet address of the module external to and downstream of the exit end module, based on knowing that module""s IP address. ARP broadcast can also be used to determine the structured destination address of the exit end module immediately upstream of the external module having the destination IP address. As such, ARP can determine from the destination IP address, not only the destination Ethernet address, but also the destination address of the immediately upstream exit end module. This proves useful when targeting the exit end module as a destination module within the network. Knowing the relationship between the exit end module and the eventual targeted, external module, as well as the entry end module and the external module connected thereto, allows the present network to seamlessly interface with external serviced networks, transparent to the user. ARP is, therefore, used not only to determine (i.e., resolve) the relationship between modules internal and external to the network, but also is used to resolve communication between two differing addressing domains (i.e., an internal structured domain and an external, non-structured domain).
According to one embodiment, a communication network is provided. The communication network comprises a plurality of interconnected modules adapted to direct packets of data through the network. Each module can be identified according to identification numbers contained within a first addressing domain of a first model layer. The first model layer and the first addressing domain is independent and separate from the addressing domain of a second model layer used to identify modules which forward and receive the packets of data outside the network. In particular, the first addressing domain is used to forward data between the entry and exit end modules, whereas the second addressing domain is used to forward data between the end modules and the respective source and termination devices external to the network.
The first addressing domain can be a structured addressing domain, if desired. While it is not necessary that the first addressing domain for forwarding data within the network be structured or hierarchical in nature, if the first addressing domain is indeed structured, the identification numbers within the first addressing domain can be bifurcated into several groupings of bits, where each group represents a certain structure such as a specific hierarchical structure. A decoder within the first module is adapted to compare an address of the packets of data within the first grouping of bits if the address originates from a module within a hierarchical level dissimilar from the first hierarchical level.
According to another embodiment, the communication network can include a pair of end modules. The pair of end modules, known as entry end modules and exit end modules operate as bookends between intermediate modules. The first addressing domain is used to identify each of the end modules and the intermediate modules according to unique identification number assigned to such modules. The second addressing domain is used to identify each of the end modules and all modules external to the network with unique identification numbers. The identification numbers of modules within the first addressing domain can overlap with identification numbers of modules within the second addressing domain. However, since the first and second addressing domains are separate and independent from one another, there is no chance that addressing between modules of the first addressing domain can be improperly routed to modules within the second addressing domain. A mapping occurs between an identification number of an end module represented within the first addressing domain to a corresponding identification number within a second addressing domain and vice-versa as data is transferred into and out of the end modules. By using dissimilar addressing domains, and converting or mapping identification numbers in the two domains at the end modules, a substantial amount of public domain identification numbers of the external second addressing domain are not needed internal to the network.
According to yet another embodiment, a method is provided for sending a packet of data across a communication network having intermediate modules interposed between an entry end module and an exit end module. The method includes wrapping the packet of data at the entry end module with a source address of the entry end module and a destination address of the exit end module. The wrapped packet is then forwarded through the intermediate module to the exit end module by decoding a first grouping of bits within the destination address before decoding a second grouping of bits within the destination address. After the modules are forwarded through the communication network, the source and destination addresses are removed (i.e., only the source and destination addresses that are structured and are added by the entry end module are removed). Other addressing protocol contained upon the packet of data prior to entry into the communication network is maintained, and thus not removed by the exit end module. The other addressing protocol may correspond to any addressing domain, such as, for example, an IP addressing or Ethernet addressing protocol. While maintaining the IP or Ethernet addressing protocols upon the wrapped packet, the packet can then be forwarded from the exit end module to a termination device identified as a destination address of either the IP address or the Ethernet address. The maintained addressing protocol can be referred to as an upper layer addressing protocol as set forth in the OSI model, that layer being a layer placed upon the packet prior to placing the structured addressing reserved exclusively for addressing within the network.